package cn.itcast.nems.studentrecord.dao.dataobject;

import cn.itcast.nems.employee.dao.bean.EmployeeGroupBean;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class JournalRepeatDO extends ApprovalFormQueryModel {
    private String id;
    /**
     * 学生ID
     */
    private Integer studentId;
    /**
     * 原学籍ID
     */
    private String originStudentRecordId;
    /**
     * 原班级ID
     */
    private Integer originClazzId;

    /**
     * 原班级名称
     */
    private String originClazzName;
    /**
     * 原学籍的出班日期
     */
    private LocalDate originClazzOutDate;
    /**
     * 出班情况；枚举值：SETTLEMENT_BEFORE｜结课前重读、SETTLEMENT_AFTER｜结课后重读
     */
    private String originClazzOutType;
    /**
     * 学生姓名
     */
    private String studentName;
    /**
     * 学号
     */
    private String studentNo;
    /**
     * 业务日期;为可能的补录单子准备，如果不存在补录的情况，该字段旧等于创建时间
     */
    private LocalDateTime bizDate;
    /**
     * 升级到到目标班级
     */
    private Integer targetClazzId;
    /**
     * 升级到的目标班级名称
     */
    private String targetClazzName;
    /**
     * 目标班级原始价格
     */
    private Integer targetClazzPrice;
    /**
     * 重读到的班级进班日期
     */
    private LocalDate targetClazzInDate;
    /**
     * 重读金额;无重读费用时，可以为零
     */
    private Integer amount;

    /**
     * 重读原因CODE;来自字典表
     */
    private String reasonCode;

    /**
     * 重读原因说明;来自字典表
     */
    private String reasonDescription;

    /**
     * 特殊申请;枚举值：非特殊｜0、特殊｜1
     */
    private Boolean specialFlag;
    /**
     * 重读生成的学籍ID;在审批通过，生成订单后更新
     */
    private String studentRecordId;
    /**
     * 重读生成的订单ID;在审批通过，生成订单后更新
     */
    private String orderId;
    /**
     * 状态;枚举值：草稿｜DRAFT、审批中｜PENDING、审批通过处理中｜APPROVED、审批未通过且流程结束｜REJECTED、审批通过并处理完成｜FINISHED
     */
    private String state;

    private LocalDate createdStartTime;
    private LocalDate createdEndTime;
    /**
     * 备注
     */
    private String remark;
    private LocalDateTime createdDatetime;

    private String scopeOrCreatedBy; // 我创建的
    private List<String> scopeOrIdIn; // 需要我审批的 ： 我审批过的 + 知会我的
    private String scopeOrIdInCreatedBy;


    /**
     * 审批单ID
     */
    private String formId;
    /**
     * category：1：审批）2：知会）
     */
    private Integer category;
    private List<EmployeeGroupBean> employeeGroups;
    /**
     * 创建人邮箱
     */
    private String createdBy ;

}
